package cn.bjxy.javaks.store_ms.service;

import java.util.List;

import cn.bjxy.javaks.store_ms.dao.GoodsDaoImpl;
import cn.bjxy.javaks.store_ms.dao.IGoodsDao;
import cn.bjxy.javaks.store_ms.entity.GoodsEntity;
import cn.bjxy.javaks.store_ms.utils.StoreMSysUtil;

public class GoodsServiceImpl implements IGoodsService {

	private IGoodsDao dao = new GoodsDaoImpl();
	
	GoodsServiceImpl() { 
		//将构造方法设置成了包访问权限，只允许同包下的日志处理器创建当前类的对象
		//因为记录日志是通过JDK动态代理实现的，为了使日志功能正常执行，使用者必须通过
		//下面提供的获取当前类的带来对象的方法来获取对象
	}
	
	@Override
	public List<GoodsEntity> findAll() {
		return dao.findAll();
	}

	@Override
	public GoodsEntity findById(String id) {
		return dao.findById(id);
	}

	@Override
	public List<GoodsEntity> findByName(String name) {
		return dao.findByName(name);
	}

	@Override
	public int delete(String id) {
		return dao.delete(id);
	}

	@Override
	public int add(GoodsEntity goods) {
		return dao.add(goods);
	}

	@Override
	public int modify(GoodsEntity goods) {
		return dao.modify(goods);
	}
	
	/**
	 * 获取当前类的代理对象
	 * @return
	 */
	public static IGoodsService getProxyInstance() {
		return (IGoodsService) StoreMSysUtil.getProxyObj(IGoodsService.class, 
				new LogInvocationHandler(new GoodsServiceImpl()));
	}
}
